﻿<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio Developer Edition 9.0.11.3078 (http://www.liquid-technologies.com)-->
<xs:schema xmlns:enum="http://www.SYMetro.com/Enum.xsd" xmlns:mstns="http://www.SYMetro.com/UserDataObject.xsd" xmlns:qs="http://www.SYMetro.com/QuerySpec.xsd" xmlns="http://www.SYMetro.com/UserDataObject.xsd" elementFormDefault="qualified" targetNamespace="http://www.SYMetro.com/UserDataObject.xsd" id="UserDataObject" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://www.SYMetro.com/Enum.xsd" />
    <xs:import namespace="http://www.SYMetro.com/QuerySpec.xsd" />
    <xs:complexType name="UserDataObject">
        <xs:sequence>
            <xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="MobilePIN" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="Email" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="LoweredEmail" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="Password" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="PasswordQuestion" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="PasswordAnswer" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="IsApproved" type="xs:boolean" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="IsLockedOut" type="xs:boolean" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="CreateDate" type="xs:dateTime" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="LastLoginDate" type="xs:dateTime" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="LastPasswordChangedDate" type="xs:dateTime" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="LastLockoutDate" type="xs:dateTime" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="FailedPasswordAttemptCount" type="xs:int" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="FailedPasswordAttemptWindowStart" type="xs:dateTime" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="FailedPasswordAnswerAttemptCount" type="xs:int" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="FailedPasswordAnswerAttemptWindowStart" type="xs:dateTime" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="Comment" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="UserName" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="MobileAlias" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="IsAnonymous" type="xs:boolean" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="LastActivityDate" type="xs:dateTime" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="LoweredUserName" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="DisplayName" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="InRoles" type="RoleDataObjectList" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="UserDataObjectList">
        <xs:sequence>
            <xs:element name="UserDataObject" type="UserDataObject" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="RoleDataObject">
        <xs:sequence>
            <xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="RoleName" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="LoweredRoleName" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="Flag" type="enum:RoleTypeEnum" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="Sequence" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" />
            <xs:element name="Users" type="UserDataObjectList" />
            <xs:element name="Children" type="RoleDataObjectList" />
            <xs:element name="Parent" type="RoleDataObject" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="RoleDataObjectList">
        <xs:sequence>
            <xs:element name="RoleDataObject" type="RoleDataObject" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="MembershipConfigDataObject">
        <!--Membership的配置传输对象-->
        <xs:sequence>
            <xs:element name="EnablePasswordRetrieval" type="xs:boolean" />
            <xs:element name="EnablePasswordReset" type="xs:boolean" />
            <xs:element name="RequiresQuestionAndAnswer" type="xs:boolean" />
            <xs:element name="RequiresUniqueEmail" type="xs:boolean" />
            <xs:element name="MaxInvalidPasswordAttempts" type="xs:int" />
            <xs:element name="PasswordAttemptWindow" type="xs:int" />
            <xs:element name="MinRequiredPasswordLength" type="xs:int" />
            <xs:element name="MinRequiredNonalphanumericCharacters" type="xs:int" />
            <xs:element name="PasswordStrengthRegularExpression" type="xs:string" />
            <!--可选值:Hashed、Encrypted、Clear-->
            <xs:element name="PasswordFormat" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="UserDataObjectListWithPagination">
        <xs:sequence>            
            <xs:element name="Pagination" type="qs:Pagination" minOccurs="0" maxOccurs="1" nillable="true"/>
            <xs:element name="UserDataObjectList" type="UserDataObjectList" minOccurs="0" maxOccurs="1" nillable="true"/>            
        </xs:sequence>
    </xs:complexType>
</xs:schema>
